Martins key.matiq-Blog

>> Zurück zum Artikelverzeichnis >>


Die Mathematik der Passwortstärke

Geschrieben: 11.01.2024
Letzte Überarbeitung: 31.01.2024
Stichwörter: Kennwörter, Sicherheit

Man sollte niemand über die Schulter schauen, wenn er*sie das Passwort erstellt oder eingibt. Damit dann aber nicht Kennwörter wie "123456789" oder "Passw0rd." herauskommen, können Regeln helfen. Es gibt aber widersprüchliche Regeln. Manche sind direkt kontraproduktiv. Ein bisschen Mathematik hilft hier, die Spreu vom Weizen zu trennen. Keine Angst, alles wird allgemeinverständlich erklärt.

Im Blog-Artikel Fehlinformation habe ich gezeigt, dass selbst jene, die es genau wissen müssten, eine nicht haltbare Empfehlung für die Kennwortwahl verbreiten und dabei die zugrunde liegende Annahme nicht etwa als diskutable Meinung, sondern als Faktum ansehen. Solcher schädlicher Dogmatik möchte ich in der Tradition der Aufklärung nun mit Mathematik begegnen.

Warum Mathematik?

"2 + 2 = 4", das lässt sich doch schlecht bezweifeln, oder? Auch höhere Mathematik, wie z. B. die über das exponentielles Wachstum bei der Ausbreitung von Epidemien in der Anfangsphase kann für die Allgemeinheit hilfreich sein, um zu verstehen, warum man handeln sollte, bevor es zu spät ist. Auch bei der Erkenntnis, dass die Erde eine Kugel ist, half die Mathematik.

Wenn wir die Mathematik der Passwortstärke verstehen, können wir uns selbst ausrechnen, ob unsere Kennwörter stark oder schwach sind. Wir bleiben nicht im Ungewissen und sind auch nicht darauf angewiesen, sie jemand oder einem Dienst zu zeigen.1 Wir müssen dafür niemand unnötig vertrauen.2

Es ist nicht einfach, Mathematik für ein breites Publikum darzustellen. Daher bitte ich die geneigte Leser*in um etwas Geduld: Wem das Folgende zu trival oder langatmig vorkommt, möge solche Passagen bitte einfach überfliegen (für andere könnten sie in dieser Ausführlichkeit nötig sein). Wem es zu schwierig vorkommt, sollte versuchen, es sich über die weiterführende Anmerkungen oder aber durch zusätzliche Internetrecherchen zu erschließen (oder, wenn dies sich als zu schwierig erweisen sollte, mir ein bitte Feedback zu geben).

Mathematiker*innen mögen mir bitte verzeihen, dass ich nicht die unter ihnen übliche Schreibweise verwende (ich denke, dass der Anteil der Leser*innen weit mehr Informatiker*innen als Mathematiker*innen umfassen wird), dass ich versuche, Bedingungen eher im Fließtext unterzubringen, oder dass, wo immer ich denke, dass sich Voraussetzungen oder Schlussfolgerungen intuitiv erfassen lassen, ich auf formale Definitionen und Beweise verzichte und/oder sie abgekürzt und möglichst allgemein verständlich darstelle. Dass ich also die Mathematik, soweit es geht, nur in groben Zügen darstelle, aber dafür auf den Praxisbezug Wert lege. (Sollte ich aber irgendwo schief liegen, oder es eine bessere Herleitung geben, so bitte ich dringend um ein Feedback.)

Fangen wir also an:

Was ist Passwortstärke? Wie kann man sie messen?

Ein starkes Kennwort benötigt sehr viele (in der Praxis: unmöglich viele) Versuche einer Hacker*in, es zu erraten.

Die Zahl der nötigen Versuche wäre also ein Maß für die Stärke. Doch besser (weil einfacher) ist es, nicht die absolute Zahl, sondern den Logarithmus zu berechnen. Wir bevorzugen (wiederum der Einfachheit halber) den binären Logarithmus:

Wenn 1000 Versuche zum Erraten erforderlich sind, ist der binäre Logarithmus ungefähr 10, denn 2 hoch 10 sind etwa 1000 (genau genommen 1024). Sind eine Mio. Versuche nötig, ist der Logarithmus etwa 20. Bei einer Mrd. liegt der Logarithmus bei 30.

Der Logarithmus spiegelt also die Größenordnung der Versuchszahl wider. Und genau das ist es, was wir brauchen. Es geht nicht um Details oder Kleinkram, sondern darum, dass ein Kennwort so stark ist, dass wir keine Sorgen haben müssen.

Wir sprechen bei dem Logarithmus dann von Stärke "in Bits". (Oder auch von Entropie in Bits.3) D. h. ein Kennwort, dass maximal 2 hoch x Versuche zum Erraten benötigt (N_max), hat eine Stärke von x Bits.4

Stärken in Bits addieren sich bei Kombinationen

Wenn wir ein Kennwort aus mehreren Komponenten zusammensetzen, dann addieren sich die in Bits gemessenen Stärken zu einer Gesamtstärke.

Beispiel: Wir nehmen mal als Zeichensatz nur Ziffern (nur der Einfachheit halber, in der Praxis werder wir wohl eher alphanumerische Zeichen nehmen). Dann dürfte jedes Zeichen 10 Möglichkeiten erfordern und hat für sich genommen eine Stärke von etwa 3,32 Bits.

Ein Kennwort aus 3 Ziffern hat also dreimal 3,32 Bits, weil sich diese aufaddieren. Also insgesamt knapp 10 Bits, wie es ja auch bei drei Ziffern, für die es 1000 Möglichkeiten ("000" bis "999") gibt, zu erwarten ist.

Das entspricht der aus der Schule vom früheren Rechenschieber bekannten Regel, dass sich die Logarithmen (bei uns die Stärken in Bits) addieren, wenn sich die ursprünglichen Werte (hier die Anzahlen der auszuprobierenden Kombinationen) multiplizieren.

Konsequenz für die Stärke von generierten Kennwörtern

Ein Kennwort, das nur aus 8 Ziffern besteht und zufällig generiert wurde, hat die Stärke 8 mal 3,32 Bits, was knapp 27 Bits entspricht.

Nehmen wir als Zeichensatz Kleinbuchstaben und Ziffern, so ist die Größe dieses Satzes 36, der binäre Logarithmus (log2) davon etwa 5,17. Acht Zeichen hätten dann eine Stärke von etwa 41,36 Bits. Die Zeichensatzerweiterung hat sich also deutlich gelohnt.

Erweitern wir den Zeichensatz um Großbuchstaben, so haben wir pro Zeichen 5,95 Bits (= log2( 10 + 26 + 26 )) und insgesamt rund 47,6 Bits für ein 8-Zeichen-Kennwort. Wir sehen, dass die neuerliche Zeichensatzerweiterung sich gar nicht mehr so stark auswirkt. Bei einer neuerlichen Erweiterung um 32 Sonderzeichen würden wir gerade mal 52,4 Bits für das Gesamtkennwort erreichen.

Bleiben wir wir dagegen bei den Ziffern, Klein- und Großbuchstaben und verlängern statt dem Zeichsatz das Kennwort nur um ein Zeichen (auf neun Zeichen), so erhalten wir eine Stärke von 53,6 Bits.

Eine starke Erweiterung des Zeichensatzes bringt also nicht einmal soviel mehr an Stärke wie die Verlängerung des Kennwort um nur ein Zeichen. Gleichzeitig würde die Erweiterung auf Sonderzeichen den Aufwand beim Eintippen deutlich mehr erhöhen (häufigeres Umschalten) als die Eingabe eines zusätzlichen alphanumerischen Zeichens.

Wir stellen fest: Wenn der Zeichensatz schon eine gute Größe erreicht hat (wie es bereits bei Kleinbuchstaben und Ziffern der Fall ist), ist es für eine Verstärkung des Kennworts in der Regel effektiver, auf mehr Länge statt auf mehr Komplexität (Vergrößerung des Zeichensatzes) zu setzen.

Der Einzug der Vorhersagbarkeit in die Passwortstärke

Bislang sind wir davon ausgegangen, dass Kennwörter zufällig generiert werden. Doch da bei Kennwörtern, die manuell eingegeben werden müssen, neben der Stärke eines Kennworts auch dessen Merkbarkeit wichtig ist, dürften diese eher selbst kreativ erdacht worden sein.

Hacker*innen haben nun aber eine Ahnung davon, wie die Ersteller*innen von Kennwörtern vorgehen. Immerhin kennen sie bereits viele von den erdachten Passwörtern. Sie probieren also bereits kompromitterte Kennwörter aus, aber auch leicht abgeänderte Varianten oder Zusammensetzungen, aber auch z. B. Kennwörter, die als Beispiele in Artikeln über Passwortsicherheit auftauchen.

Ferner entdecken Hacker*innen auch so manche Regel in den Listen kompromittierter Kennwörter. Z. B. dass viele Kennwörter aussprechbar sind (also Konsonanten und Vokale keineswegs zufällig verteilt sind). Oder dass manche Buchstaben systematisch durch bestimmte Ziffern ersetzt wurden (z. B. "S" durch 5 oder "A" durch "4", oder "E" durch "3", jeweils wegen der ähnlichen Schreibung). Oder dass vulgäre Ausdrücke gerne in Passwörtern verwendet werden oder Schlagwörter, bei denen die Passwort-Autor*innen wohl denken, sie seien besonders schlau, solch offensichtliche Wörter zu benutzen.5

All diese Erfahrungen führen dazu, dass Hacker*innen die Versuche nicht willkürlich reihen, sondern entlang von Wörterbüchern.

Die Hacker*innen nehmen aber auch durchaus die Vorschläge zur Kenntnis, lieber eine Reihe von Wörtern aus einer Liste von allgemeinen Wörtern zu nehmen, die dann zu einer Passphrase kombiniert werden.6

Die allgemeine Formel für die Passwortstärke

Die Formel lautet:7

s_pw = s_c * n - p // (1)

Dabei ist

  • s_pw: die Gesamtstärke des Kennworts (in Bits),
  • n: die Anzahl der Komponenten,
  • s_c: die (durchschnittliche) Stärke der Komponenten (in Bits), wenn sie denn rein zufällig gewählt worden (sind oder) wären, und
  • p: der Teil der (sonst möglichen) Stärke, der durch Vorhersagbarkeit verloren geht.

Die Formel leitet sich aus allgemeinen Überlegungen über die Stärke von Kennworten und aus statistischen Überlegungen her.8

Wenn die Komponenten alle gleicher Art sind, kann man die gleiche Stärke (bei zufälliger Wahl) ansetzen. Sind sie unterschiedlicher Art, kann man statt s_c * n auch einfach die Summe aller Einzelstärken ansetzen.

Der Wert p ist dabei natürlich am unsichersten abzuschätzen. Aber wir werden ihm schon noch auf die Spur kommen.

Wenn ein Kennwort rein zufällig gewählt wurde, so ist

p == 0

und die Gesamtzahl der Kennwörter mit gleicher Komponentenstärke und Länge

2 ** s_pw

Die benötigte Anzahl der Hackversuche bis zum Erraten des Kennworts beträgt dann im Mittel9

N = 2 ** ( s_pw ) / 2

Umgekehrt ist dann

s_pw = log2( N ) + 1 // (2)

wobei N die mittlere nötige Versuchszahl ist.

Die Stärke von Passphrasen

Bei Passphrasen wird z. B. vorgeschlagen, eine Liste von 2000 Wörtern zu nehmen, aus diesen vier Wörter zufällig zu wählen und diese vier Wörter dann zu einer Passphrase zu verbinden.10

Wird es genauso gemacht, so ergibt

log2( 2000 )

(etwa) den Wert 11 und wir haben für die gesamte Phrase eine Stärke von 44 Bits. Das ist allerdings nur etwa ein Drittel von dem, was wir für ein wirklich starkes Kennwort benötigen.

Will man auf diese Weise eine Passphrase erzeugen, die in der Stärke einem kryptografischen Schlüssel entspricht, so kommt man leicht auf mehr als 80 Zeichen. Keine so praktikable Idee, oder?

Die Alternative "Pseudozufällige Kennwörter"

Wenn man Kennwörter entwickelt,

  • die von einer Aussprechbarkeit weit entfernt sind und auch
  • von in Wörterbüchern oder irgend im Internet bereits zitierten Namen, Wörtern oder gar Kennwortvorschlägen weit entfernt sind, und
  • die in ihrer Entwicklung zahlreiche tatsächlich zufällige Entscheidungen aufweisen,

also eine Hacker*in quasi in ein Labyrinth verweisen, in dem nur noch bleibt, alle möglichen Kennwörter auszuprobieren, bis sie dann irgendwann aufgeben muss, dann verwende ich hierfür die Bezeichnung "Pseudozufällige Kennwörter".11

Ich werde auf die Stärke pseudozufälliger Kennwörter später noch vertieft eingehen. Aber zunächst müssen wir den Begriff der Passwortstärke noch verallgemeinern, wobei die Betrachtung von Wörterbüchern in Brute-Force-Angriffen erforderlich ist.

Die Vorhersehbarkeit von Kennwörtern und die Reihung von Hackversuchen.

Zunächst einmal können Hacker*innen im Internet Listen von bereits kompromittierten Kennwörtern kaufen, die von gehackten Servern erbeutet12 wurden. Je häufiger ein Kennwort in solchen Listen auftaucht, desto wahrscheinlicher ist, dass es auch auf anderen Servern zu finden ist. D. h. diese Häufigkeit der Entdeckung in Datenlecks ist das primäre Kriterium für die Reihung von Hackversuchen.

Gleich nach bereits durch Datenlecks kompromittierten Kennwörtern kommen Beispiele von Kennwörtern, die irgendwo im Internet genannt wurden. Tatsächlich wurden viele von diesen auch schon bei Datenlecks gefunden. Man kann also davon ausgehen, dass die anderen Kennwortbeispiele ebenfalls von Hacker*innen ausprobiert werden, nur wurden sie noch nicht in erwerbbaren Listen angeboten.13

Nennen wir die kompromittierten (in der Folge ihrer Häufigkeit) oder durch Nennung im Internet verbrannten Kennwörter (in der Folge ihrer Länge) das "primäre Wörterbuch" der Hacker*in.

An dritter Stelle stehen nun

  • Mögliche Kennwörter, die zwar noch nicht kompromittiert wurden, aber wegen ihrer Verwandtschaft zu kompromittierten als "wahrscheinlich benutzt" betrachtet werden.14
  • Varianten von Kennwörtern des primären Wörterbuchs (vorrangig solche mit geringer Levenshtein-Distanz15) und
  • das systematische Ausprobieren anderer mögliche Kennwörter, wobei die Länge entscheidend für die Reihung ist.

Die and dritter Stelle aufgeführten Kennwortklassen dürften in der Reihung wohl gemischt auftreten.16

Beim systematischen Ausprobieren (sowohl von Varianten als auch von allen Kennwörtern einer bestimmten Länge) dürften bekannte Regeln, Vorschläge und Tipps eine Rolle spielen und eine Unterreihung bewirken.

Nennen wir die gesamte Reihung von Wörtern das "potenzielle Wörterbuch" der Hacker*in. Potenziell deshalb, weil dieses Wörterbuch unendlich viele Wörter umfasst17. Dieses Wörterbuch wird also in der Praxis nicht ausgeschöpft werden.

Ich habe versucht, Kriterien für eine optimale Reihung (im Sinne der Hacker*in) zu finden, aber es kann natürlich sein, dass diese Kriterien nicht ganz so leicht zu implementieren sind und daher eine einfachere Reihung stattfindet. (Die Konsequenzen solcher Vereinfachungen auf die folgenden Überlegungen dürften sich aber in Grenzen halten.18)

Welchen Einfluss hat die Reihung von Hackversuchen auf die Stärke von Kennwörtern?

Bei zufällig generierten Kennwörtern hatten wir bereits in der Formel (2) einen Zusammenhang mit der mittleren Versuchszahl N und der Stärke in Bits gefunden. Ähnlich können wir auch bei einer Reihung der Versuche vorgehen: Angenommen in der Reihung kommt das eigene Kennwort an N-ter Stelle dran, dann hat das eigene Kennwort analog eine Stärke von

log2( N ) + 1 // (3)

(mit N als Position in Hackreihung, also: 1, 2, ...)

Bits, wobei N wiederum als mittlere Zahl der benötigten Versuche bis zum Erraten des Kennworts betrachtet wird. Achtung: Wir haben jetzt den Begriff der Passwortstärke etwas verallgemeinert. Er setzt nicht mehr rein zufällig gewählte Kennwörter (wie in Formel (2)) voraus, sondern geht allgemein von der mittleren Anzahl der benötigten Hackversuche aus.

Zu beachten ist, dass in Formel (3) N größer ist als in Formel (2). Bei letzterer wurden ja nur Kennwörter gleicher Länge und gleicher Komponentenstärke betrachtet. Aber dieser Unterschied macht, wie bereits erwähnt, gar nicht viel aus, und wir können für zufällig gewählte Kennwörter durchaus weiterhin in guter Näherung die Formeln (1) und (2) verwenden. (Für die Passwortstärke sollten wir ohnehin nicht eine bestimmte Strategie der Hacker*in voraussetzen, sondern das Minimum der Stärke bei beliebigen Hack-Strategien annehmen.)

Die durch Vorhersagbarkeit verloren gegangene Stärke

Ich hatte versprochen, dem Wert p, der uns Passwortstärke raubt, auf die Spur zu kommen.

Inhaltlich ist diese Aufgabe aber schon durch die Berücksichtigung der Hackreihung gelöst. Denn in der Formel (3) ist p implizit berücksichtigt, da Kennwörter mit größerer Erratbarkeit (bekannte, zu bekannten ähnliche, ausprechbare Kennwörter, minimale Befolgung von bekannten Regeln19) zu einem niedrigeren Wert von N in Formel (3) führen.

Brauchen wir eigentlich mehr? Nein20, wir müssen einfach all die eben genannten Entropiekiller in Kennwörtern meiden, um N zu maximieren und damit p zu minimieren. Das reicht, denn die halbwegs vorhersagbaren Kennwörter können immer nur einen Bruchteil der möglichen Kennwörter ausmachen. (Sonst würden sie der Hacker*in auch kaum Vorteile bieten, weil sie dann ja doch die Mehrheit der möglichen Kennwörter ausprobieren müsste.)

Gibt es eine Mathematik von Pseudozufälligkeit?

Zumindest gibt es Anforderungen, die wir an pseudozufällige Kennwörter stellen sollten:

  • Für die Eigentümer*in des Kennworts soll dieses alles andere als zufällig sein: Es soll gut merkbar und von Hand eingebbar sein. In der Regel steckt hinter dem Kennwort eine Geschichte, ein Bild oder ein anderes Konstrukt, das gut gemerkt wird und leicht in das Kennwort übersetzt werden kann.
  • Für eine beliebige Hacker*in sollte das Kennwort dagegen als (zumindest weitgehend) zufällig erscheinen. Sie sollte auch bei optimaler Strategie im Schnitt

    2 ** ( s_pw - 1 ) // (5)

    (mit s_pw als gewünschte Passwortstärke) Versuche benötigen, um das Kennwort zu erraten.

Die Pseudozufälligkeit hat also zwei Seiten: Zufälligkeit in der einen Richtung, das Gegenteil in der anderen. Wirklich das Gegenteil? So sehr wie es der Eigentümer*in irgendwann vertraut sein sollte, so sehr sollte sie versuchen, es aus Zufälligem zu speisen: Es mag, um Klischees zu bedienen, ein Blick in Wolkenformationen oder abstrakte Kunst sein, oder Assoziationen, die eine*m unter der Dusche einfallen, Missverständnisse, das Rauschen der Welt oder des Lebens, die den Pseudozufallsgeschichtengenerator ausmachen. Es geht einfach um Kreativität. Man informiere sich über die in "Listen von häufigsten Passwörtern" genannten Kennwörter, um zu erfahren, was nicht kreativ ist. Ansonsten kann man an der eigenen Kreativität durchaus arbeiten.21

Bei der entwickelten Geschichte sollte man mal ruhig abzählen, wie viele (unvorhersagbare) Ja/Nein-Entscheidungen darin enthalten sind. Es müssen mindestens s_pw viele22 sein. Bei dem daraus entwickelten Kennwort sollte überprüft werden, ob dort immer noch mindestens s_pw Bits an Entropie enthalten sind, siehe Formel (1). Kann man p auf 0 drücken? Wenn noch übliche Muster (wie Aussprechbarkeit) enthalten sind, könnte man das vielleicht durch Verfremdung oder doch etwas mehr Länge kompensieren.

Die nötige Stärke von Kennwörtern

Meine Forderung nach kryptografischer Stärke (also 128 Bit23) ist hart, aber keineswegs unbegründet. Für Angriffe gegen Internet-Konten aus dem Internet heraus sind zwar bereits deutlich schwächere Kennwörter sicher. Aber gerade der Angriff gegen LastPass24 hat (auch wenn LastPass viel falsch gemacht hat25) gezeigt, dass selbst große Dienste, die viel Geld für Sicherheitsvorkehrungen haben und viel Expertise für digitale Sicherheit besitzen sollten, nicht immun vor Abgriffen von Serverdaten sind.

Auch unidirektional verschlüsselte Kennwörter, die auf Servern gehalten werden müssen, können entschlüsselt werden, solange die Kennwörter selbst nicht kryptografische Stärke haben. Auch wenn der Dienst nur clientseitig verschlüsselt.26 Die von uns und auch von vielen anderen Diensten unternommenen Anstrengungen, mittels clientseitiger Verschlüsselung die Angriffsflächen zu minimieren, werden also konterkariert, wenn Benutzer*innen keine Anstrengungen unternehmen, ihre Hauptkennwörter in Richtung kryptografischer Stärke zu entwickeln. Hier liegt tatsächlich die bedeutendste allgemeine Schwachstelle digitaler Sicherheit!

Ich verstehe natürlich, dass Nutzer*innen lange Kennwörter von 20 bis 25 Zeichen, die zudem pseudozufällig gewählt sind, als Zumutung empfinden.

Aber es ist nicht nicht völlig unmöglich. Viele haben bereits Kennwörter mit der halben Bit-Zahl an Entropie. Sie müssten also nur ein zweites Kennwort gleichen Entropie entwickeln und beide miteinander kombinieren.27

Finger haben ein Gedächtnis (im Kleinhirn). D. h. sie können auch längere Zeichenfolgen einüben. Man hat auch durchaus etwas Zeit, kann ein Kennwort in kleinen Schritten verlängern, verfremden und einüben.

Wenn man diese Arbeit jedoch auf den Sankt-Nimmerleins-Tag verschiebt, geht man ein großes Risiko ein, dass irgendwann Daten von einem Server oder von einem Gerät abgegriffen werden, die die Entschlüsselung des Kennworts und aller damit verschlüsselten Daten (evtl. auch verschlüsselten anderen Kennworten) erlaubt. D. h. es kommt dann sehr viel mehr Arbeit auf eine*n zu.

Wer denkt, dass man die Verstärkung der eigenen Hauptkennwörter ja vornehmen kann, wenn die Einschläge dichter kommen, kann sich leicht irren: Daten können abgegriffen werden und dann möglicherweise noch gar nicht gleich entschlüsselbar sein, doch einige Jahre später auf Grund gestiegener Rechenleistung ausgewertet werden. Das bedeutet aber, dass wenn Bekannte durch kompromittierte Kennwörter geschädigt werden, man evtl. längst selbst betroffen ist (alle Daten sind bereits abgegriffen und können jederzeit ausgenutzt werden), ohne noch mit mäßigem Aufwand gegensteuern zu können. Dann bleibt nichts mehr, als schleunigst sämtliche Kennwörter zu ändern, sämtliche Sicherheitsabfragen und dennoch bleibt es sehr gefährlich für die eigene digitale Identität, weil die Angreifer*innen bereits viel zu viel von eine*m wissen.

Angesichts der Entwicklung der Internet-Kriminalität bin ich mir ziemlich sicher, dass das beschriebene Risko weitaus größer ist als die Arbeit, sich rechtzeitig dagegen mit starken Kennwörtern zu schützen.

Exkurs: Wie haltbar sind dann schwächere Kennwörter noch?

Die Frage ist berechtigt. Denn wenn wir starke Kennwörter (mit 128 Bit Stärke) einüben, geht das kaum in einem einzigen Schritt. Wir werden nach und nach das Kennwort verlängern und damit verstärken, um den Fingern die Zeit zu geben es zu erlernen und uns nicht auf dem Weg dahin selbst auszusperren.

Manuell einzugebende Kennwörter sind meist Geräte-Kennwörter, Hauptpassworte von lokalen Programmen (Browser, Passwortmanager, Verschlüsselungssoftware für Platten, etc.) Solange die verschlüsselten Daten rein lokal gespeichert sind und sie strikt vor unbefugtem physikalischen Zugriff geschützt werden, ist ein erfolgreiches Hacking der Kennwörter nicht möglich. (Natürlich ist solch ein strikter Zugriffsschutz kaum ununterbrochen durchzuhalten. Deshalb müssen ja auch die Kennwörter so bald wie möglich stark werden. Aber das Risiko wird doch stark minimiert.)

Aber zur Eingangsfrage dieses Abschnitts: Um abzuschätzen, wie stark denn schwächere Kennwörter sind, müssen wir betrachten, welches die optimale Strategie von Hacker*innen ist. Nehmen wir also mal an, dass eine Hacker*in eine Anzahl verschlüsselter Kennwörter erbeutet hat und diese nun offline per Brute-Force-Methode entschlüsseln will.

Die optimale Offline-Hackstrategie bei abgegriffenen Kennwortdaten

Hacker*innen sind erfolgreich und werden deshalb bedeutender werden, wenn sie ökonomisch vorgehen und das Verhältnis von Chance und Aufwand maximieren. Dabei ist

Chance = Ertrag_bei_Erfolg * Erfolgswahrscheinlichkeit

Die Erfolgswahrscheinlichkeit dürfte am höchsten bei den ersten Kennwörtern des Wörterbuchs liegen und danach nur bei gleichem Rang gleichbleiben, sonst aber laufend fallen, ohne dabei ganz auf Null zu sinken. Denn genau so ist ja das Wörterbuch sortiert und wird auch so laufend angepasst.28

Der Aufwand dürfte über die Einzelproben hinweg ziemlich konstant bleiben, aber die Erfolgswahrscheinlichkeit wird sinken. Wenn die Aufwände die Chancen überschreiten wird die Hacker*in die Versuche abbrechen.29

Hacker*innen werden evtl. nicht ganz bis zu dieser Grenze gehen, sondern eine weitere Priorisierung vornehmen, um das Verhältnis Chance / Aufwand zu maximieren. D. h. es kann sein, dass sie nicht alle möglichen Stärken (bei denen noch Chance / Aufwand > 1 ist) durchprobieren, sondern irgendwann die restlichen Daten liegen lassen, sich vielleicht für später aufheben, wenn Rechengeschwindigkeiten wieder angewachsen sind, vielleicht aber auch gar nicht wieder anfassen, weil der Nachschub an frischen erbeuteten Daten lohnendere Ergebnisse verspricht. In letzterem Fall könnten dann die Angegriffenen sagen "Glück gehabt", wenn sie es denn wissen würden.

Die Haltbarkeit abgegriffener, aber noch nicht geknackter Kennwortdaten

Das Mooresche Gesetz der regelmäßigen Verdoppelung der Rechengeschwindigkeit30 sorgt für eine Halbwertszeit des Aufwands für die Entschlüsselung (t1) noch ungeknackter Kennwortdaten.

(Hinzukommt zwar noch, dass die Zahl der kompromittierten Kennwörter im Laufe der Zeit zunimmt und damit ebenfalls den Aufwand für die Entschlüsselung drückt. Doch gegenüber dem Moorschen Gesetz scheint dieser Effekt noch vernachlässigbar zu sein.31)

Aber die noch ungeknackten Kennwörter verlieren auch an Wert. Darauf hat die Eigentümer*in jedoch bedeutendenden Einfluss. Wenn sie die Halbwertszeit für den Wert der Daten (t2) unter t1 drückt, kann sie den Schaden minimieren oder ganz vermeiden, weil dann

log2( t2 ) / log2( t1 ) < 1

Dieses Verhältnis bestimmt nämlich die weitere Entwicklung des Verhältnisses von Chance zu Aufwand für die Hacker*in (bezüglich des Entschlüsseln des betroffenen Kennworts).

Also sagt uns die Mathematik hier: Auch wenn man erst spät erfährt, dass Kennwortdaten abgegriffen wurden, nicht lange warten, sondern das Kennwort bald ändern. Wenn mit dem Kennwort Daten verschlüsselt wurden, dann diese möglicherweise kompromittierten Daten – wenn das geht und Sinn macht – durch andere ersetzen. (Z. B., wenn das Hauptpasswort eines Passwortmanagers kompromittiert ist, sollten alle damit verschlüsselten Kennwörter gewechselt werden.)

Der Wichtigkeitsfaktor

Bislang haben wir die Hackstrategie unter der Annahme betrachtet, dass alle geknackten Kennwörter gleichen Ertrag bringen würden. Aber oft geben die abgegriffenen Daten auch Auskunft über die Personen, denen sie gehören.

  • Einer kommerziellen kriminellen Hacker*in dürfte das Kennwort einer vermögenden Person mehr Ertrag bringen als das einer aus bescheidenen Verhältnissen.
  • Eine Hacker*in, die für eine Autokrat*in arbeitet, um deren Macht zu sichern oder zu vergrößern, dürfte das Kennwort einer einflussreichen Person mehr Belohnung einbringen als das Kennwort einer x-beliebigen Person.
  • Einer Verbrechensbekämpfer*in, steht in der Regel mehr Etat zur Verfügung, um eine Mörder*in zur Strecke zu bringen, als wenn es um eine Fahrraddieb*in geht.

Es wird also der Ertrag_bei_Erfolg immer von diesem Wichtigkeitsfaktor abhängen und damit auch in die Berechnung der Chance eingehen. Ist das Hacken eines bestimmten Kennworts tausendmal so wichtig wie das Hacken eines durchschnittlichen Kontos, dann dürfte auch der tausendfache Aufwand getrieben, werden. Und da der Aufwand proportional zu 2 ** s_pw ist (und da 2 ** 10 in etwa 1000 ergibt), sollte eine Person mit Wichtigkeitsfaktor 1000, um das zu kompensieren, dann ihre Kennwörter 10 Bit stärker machen, als wenn sie nur den Wichtigkeitsfaktor 1 hätte.

Keine Person sollte aber annehmen, sie hätte einen Wichtigkeitsfaktor unterhalb von 1 (und dann etwa deshalb ihr Kennwort um ein oder mehr Bits abschwächen). Denn der Wichtigkeitsfaktor kann eine Rolle spielen, muss es aber nicht. Neben stark optimierten Strategien, müssen unsere Annahmen und Gegenmaßnahmen auch immer einfachere Strategien der Hacker*innen berücksichtigen.

Zur Kontrolle: Pseudozufällige, kryptografisch starke Kennwörter

Wenn wir Kennwörter verwenden, die sehr, sehr zufällig aussehen und nicht bereits kompromittiert sind und wir auch nirgendwo abgeschrieben haben (oder mit nur minimalen Veränderungen abgeschrieben haben). Wenn diese Kennwörter durch eigene Kreativität entstanden sind, also sie niemand kennt, dann dürfte der Wert von p in der Praxis bei 0 liegen.

Wir haben dann Kennwörter, die pseudozufällig gewählt sind. Wir müssen dabei den Umfang des Zeichensatzes, den wir verwenden, bestimmen (dürfen aber auch nur solche Zeichenarten berücksichtigen, die wirklich anteilig verwendet werden). Von diesem Umfang berechnet wir den binären Logarithmus, um die Stärke pro Zeichen zu erhalten. (Verwenden wir Kleinbuchstaben und Ziffern sind das 5,17 Bit, nehmen wir Großbuchstaben hinzu sind es 5,94 Bit, nehmen wir gut gemischt auch die sichtbaren 32 ASCII32-Sonderzeichen mit rein, sind es 6,55 Bit.)

Dementspechend brauchen wir, um kryptografisch starke Kennwörter zu erhalten: 25, 22 oder 20 Zeichen lange pseudozufällige Kennwörter je nach Zeichensatz (Kleinbuchstaben mit Ziffern, alphanumerisch oder alle sichtbaren ASCII-Zeichen).

Müssen die Kennwörter in Zukunft immer länger werden?

Das Mooresche Gesetz wird natürlich auch von den Hacker*innen genutzt, d. h. sie können die sich derzeit noch alle 15 Monate verdoppelnde Rechengeschwindigkeit nutzen, um in Zukunft verschlüsselte Kennwörter zu knacken, die heute noch nicht entschlüsselbar ist.

Allerdings berücksichtigt die vom NIST empfohlene Mindeststärke kryptographischer Schlüssel bereits diese Überlegung. D. h. solche Kennwörter werden derzeit33 wohl noch lang genug halten.34

In Zukunft werden kryptographische Schlüssel in der Stärke mit der Rechengeschwindigkeit Schritt halten müssen. Doch das heißt nicht, dass auch die Kennwörter immer länger werden müssen. Die Schlüsselstreckung bietet dafür nämlich einen Ausweg. Sie kann parallel zur Rechengeschwindigkeit erhöht werden, so dass sie die Beschleunigung der Entschlüsselungsversuche wieder kompensiert. Es wird also bei etwa 128 Bit nötiger Stärke von Kennwörtern bleiben.35

 

1) Es gibt verschiedene Dienste verschiedener Qualität, wie z. B. wiesicheristmeinpasswort.de und checkdeinpasswort.de. Der erstere ist wohl etwas besser (er sieht das kompromittierte Kennwort "Passw0rd." als "sofort" entschlüsselbar an, während der zweite es als "innerhalb von einem Jahr" entschlüsselbar betrachtet. wiesicheristmeinpassword.de verspricht zwar immerhin, das Kennwort nirgendwohin zu übertragen (was checkdeinpasswort.de leider so nicht sagt, aber wenigstens verspricht, es nicht zu speichern), aber kann man das für alle Zukunft glauben? Die Seite scheint vernünftige Inhalte zu haben. Aber der Inhaber der Domain ist ein Privatmann. Irgendwann wird jede*r sterben. Was geschieht dann mit der Domain? Wenn sie abgemeldet wird, kann sie jede*r übernehmen. Sollte dies eine Hacker*in sein, so könnte sie einfach die bisherigen Seiten kopieren und so tun, als sei alles beim Alten geblieben. Nur mit einem Unterschied: Sie würde wohl stillschweigend alle eingetragenen Kennwörter abgreifen.
Echte (tatsächliche für die Authentisierung oder für Verschlüsselung benutzte) Kennwörter sollte man also besser solchen Diensten NICHT anvertrauen.

2) D. h. Sie müssen nicht mir trauen, sondern nur allgemein bekannten Regeln der Mathematik, um meine Schlussfolgerungen für starke Kennwörter nachzuvollziehen.

3) Siehe Wikipedia "Entropie (Informationstheorie)".

4) Anmerkung nur für Mathematiker*innen (damit sie wissen, worauf ich mit den folgenden Ausführungen hinaus will, und Sie diese daher schneller überfliegen können): Ich werde weiter unten in Formeln (2) und (3) noch etwas genauer herausarbeiten, dass es besser ist, statt mit der Maximalzahl der Versuche mit der mittleren Anzahl von Versuchen für die Bestimmung der Stärke zu arbeiten (wobei es gar nicht so entscheidend ist, ob wir den Zentralwert, das arithmetische oder das geometrische Mittel nehmen, da sie alle drei in der Praxis ziemlich ähnliche Werte annehmen werden). Die Maximalzahl macht nur Sinn, wenn wir den Raum der möglichen Kennwörter begrenzen (z. B. "alle Kennwörter mit 25 alphanumerischen Zeichen", oder "alle Kennwörter mit bis zu 25 alphanumerischen Zeichen"). Und wenn alle Kennwörter dieses Raums gleich wahrscheinlich sind. Bei solchen begrenzten Kennworträumen ist die mittlere Versuchszahl N die Hälfte der Maximalzahl N_max. Es gilt dann für die Stärke s_pw:

( s_pw = log2( N_max ) ) == log2( N ) + 1

Bei unbegrenzten Kennworträumen ist N_max theoretisch unendlich, aber die Kennwörter sind nicht mehr gleich wahrscheinlich. Für konkrete Kennwörter gibt es aber weiterhin eine mittlere Versuchszahl N für das Erraten, die sich aus wenigen Annahmen über eine optimalen Hackstrategie ergibt und die zu einer (zum Bisherigen analogen) Stärke führt:

s_pw = log2( N ) + 1

5) Sie sind in Wahrheit nur naiv. Sie ahnen nicht, dass es für Hacker*innen so gut wie gar nichts kostet, vor aufwändigeren Angriffen alle bekannten Wörter durchzuprobieren und dass sie dabei immer wen erwischen. Dass es überhaupt einige Zeit bis zum erfolgreichen Hacking dauert, liegt nicht daran, dass solche Kennwörter ein Hindernis darstellen würden, sondern daran, dass es sich bei deren Eigentümer*innen um Internet-Neulinge handelt, deren E-Mail-Adresse noch nicht bekannt ist. Da E-Mail-Adressen nicht wirklich sicher schützbar sind, ist es aber nur eine Frage der Zeit, bis sie Angriffen ausgesetzt sind. Dann dauert es nicht mehr lange...

6) Z. B. ist die in "Password Strength" diskutierte Passphrase "correcthorsebatterystaple" bei "Have I Been Pwned" gelistet (232 mal) und auch die Variante mit Leerzeichen ("correct horse battery staple", fünfmal). (Abfrage am 05.01.2023).

7) Für die, die sich mit Programmiersprachen auskennen: Wir nehmen als Syntax/Semantik einfach die der Programmiersprache "C++". Ansonsten bedeutet:

  • "//": Markiert vorangestellt einen Kommentar
  • "*": multipliziert mit
  • "/": geteilt durch
  • "**": hoch
  • "log2( ... )": binärer Logaritmus von ...
  • "=": Zuweisung (linke Seite nimmt rechten Wert an)
  • "==": Gleichheit (linke Seite ist gleich rechtem Wert)

8) Die folgende Formel entspricht der Aussage am Schluss des Abschnitt "Entropy as a measure of password strength" in Wikipedia "Password Strength" (englisch) (Stand 16.01.204): "On average, an attacker will have to try half the possible number of passwords before finding the correct one."

9) In dem Artikel Wikipedia "Password Strength" (englisch) wird die Stärke als Funktion von Länge, Komplexität und Nicht-Vorhersagbarkeit beschrieben.
Die Länge ist die Anzahl von Komponenten. Die "Komplexität" entsteht aus der Anzahl von Möglichkeiten jeder Komponente. Die Stärke einer einzelnen Komponente ist dann der Logarithmus der Anzahl der Möglichkeiten. Die Stärken einzelner Komponenten sind für die Gesamtstärken dann aufzuaddieren (d. h. bei gleichen Komponentenstärken einfach mit der Anzahl der Komponenten zu multiplizieren).
Wenn es keine Vorhersehbarkeit gibt, bleibt es bei dieser Formel, sonst muss noch ein Wert (p) abgezogen werden, der zwischen 0 und s_c * n liegt.

10) Siehe den Comic "Password Strength" und die zugehörige Diskussion "How accurate is that XKCD comic ...".

11) Ich habe über diese Möglichkeit erstmalig im Blog-Artikel "Das gute Kennwort" geschrieben.

12) Wenn Hacker*innen auf einen Server eindringen und Kennwortdaten finden, so kann deren Schutz ganz unterschiedlicher Qualität sein: Manchmal liegen Kennwörter im Klartext vor (ja, das gibt oder gab es zumindest tatsächlich). Manchmal sind die Kennwörter nur etwas verschleiert, d. h. in ein kryptisches Format gebracht (hexadezimale Darstellung, Base64-Format). Manchmal gibt es eine hausgemachte Verschlüsselung, die bei Untersuchung der auf dem Server liegenden Programme und Skripte leicht zu knacken ist.
Wie die übrigen, mehr oder minder stark und unidirektional verschlüsselten Kennwörter geknackt werden können, wird im Haupttext dieses Artikels behandelt. Jedenfalls spielen bereits frühere Beuten eine große Rolle bei der Entschlüsselung neuer Beuten.

13) So würde ich jedenfalls vorgehen. Bei Dateneinbrüchen entdeckte Kennwörter sind mit ziemlicher Wahrscheinlichkeit auch anderen Orts wieder zu entdecken, während das bei durch Veröffentlichung kompromittierten Kennwörter nicht ganz so sicher ist. Vielleicht haben die Dummen diese Artikel gar nicht erst gelesen, oder sie sind vielleicht durch das Lesen klüger geworden ... Man kann nie wissen. ;-)
Tatsächlich habe ich im Internet einige Beispiele von Kennwörtern gefunden, die nicht bei "Have I Been Pwned" (HIBP) gelistet sind. (Man sollte aber wissen, dass bei HIBP nur solche Kennwörter gelistet werden, die nach Dateneinbrüchen (zumindest käuflich) im Internet angeboten werden. Ich halte es aber für durchaus wahrscheinlich, dass es Internetkriminelle gibt, die erbeutete Kennwörter zunächst einmal selbst ausnutzen wollen, z. B. weil sie sich durch Folgeangriffe mit Ransomware mehr Profit versprechen, wenn die kompromittierten Kennwörter noch nicht als solche bekannt sind und deren Eigentümer*innen evtl. durch die HIBP-Listung vorgewarnt werden.

14) Auf Anhieb finde ich von drei Kennwörtern, die aus einem klein geschriebenen weiblichen Vornamen bestehen ("andrea", "petra", "michaela") alle drei auch als bereits kompromittiert. Es könnte nun sein, dass auch andere übliche weibliche Vornamen häufig als Kennwörter benutzt werden, aber noch nicht alle in den gängigen Listen kompromittierter Kennwörter auftauchen.
Es kann also durchaus für eine Hacker*in Sinn machen, inhaltlich mit kompromittierten Kennwörtern verwandte Wörter in die zu probierende Liste bevorzugt (gegenüber dem systematischen Ausprobieren aller Wörter gleicher Länge) aufzunehmen.
Oder man findet z. B. im primären Wörterbuch auffällig viele Umschriften bestimmter Art von kompromittierten Wörtern, wie dass "I" durch "1", "Z" durch "2", und "E" durch "3", "A" durch "4", "S" durch "5", "G" durch "6", und "O" durch "0" (wegen der ähnlichen Schreibung) ersetzt sind. Dann könnte es Sinn machen, alle kompromittierten Kennwörter, die "I", "Z", "E", "A", "S", "G" oder "O" enthalten, bevorzugt auch in deren entsprechenden Umschrift zu testen (soweit sie nicht in auch dieser Schreibung ohnehin schon in dem primären Wörterbuch enthalten sind).

15) Die Levenshtein-Distanz misst die Unähnlichkeit von zwei Zeichenketten. Siehe Wikipedia "Levenshtein-Distanz".

16) Z. B. dürften systematisch alle (noch nicht probierten) Kennwörter einer kurzen Länge n1 probiert werden, bevor Varianten der kompromittierten Kennwörter n2 mit der Leventstein-Distanz l2, wenn deren Anzahl restlichen n1-langen Kennwörter geringer ist, als die der n2-l2-Varianten.
Vergleichsweise kurze Listen wie z. B. die aller weiblichen Vornamen dürften wohl eher vor Varianten mit Leventstein-Distanz probiert werden. Bei längeren Listen könnten dagegen Varianten häufig kompromittierter Kennworte mit sehr geringen Leventstein-Distanzen als erfolgsversprechender angesehen werden.

17) Nach dem letzten Wort der Länge n wird sich ein noch ein längeres (er-)finden lassen.

18) Natürlich könnte eine durch Vereinfachung veränderte Reihung auch ein Kennwort früher kompromittieren, als es ohne Vereinfachung passiert wäre, aber dieses Risko ist geringer als die Chance für andere Kennwörter, der Entdeckung zu enkommen.

19) Nehmen wir z. B. die eingangs genannte (von Bitkom kommunizierte) Regel, dass in einem Kennwort neben Kleinbuchstaben mindestens eine Ziffer, ein Großbuchstabe, und ein Sonderzeichen enthalten sein sollen. Wenn nun genau eine Ziffer, genau ein Großbuchstaben und genau ein Sonderzeichen in einem Kennwort enthalten sind, und der Rest alles Kleinbuchstaben sind, dann ist dies eine "minimale Befolgung einer bekannten Regel", die zur Erratbarkeit des Kennworts deutlich beiträgt.
(Die bloße Verwendung von zwei Ziffern statt einer würde es noch nicht viel besser machen. Man sollte schon deutlich von solchen Minima abweichen.)

20) Wenn wir N kennen (oder abschätzen können), können wir p aus Formeln (1) und (2) bzw. (3) berechnen (oder abschätzen):

p = s_c * n - log2( N ) - 1 // (4)

21) Um sich allgemein über Kreativität zu informieren, siehe Wikipedia. Der Wissenschaftsjournalist Bas Kast hat mal in der 3-Sat-Teleakademie einen interessanten Vortrag über Kreativität gehalten und auch ein Buch darüber geschrieben ("Und plötzlich macht es KLICK!"). Aber fragen Sie doch selbst Ihre Suchmaschine nach "kreativität fördern erwachsene".

22) D. h. im Endausbau sollten es 128 Bit, also die Stärke eines kryptografischen Schlüssels sein. Aber Sie können natürlich auch zunächst mit einer geringeren Stärke anfangen.

23) Das NIST empfiehlt derzeit33 uneingeschränkt nur noch Algorithmen mit einer Sicherheitsstärke von 128, 192 oder 256 Bit. Siehe "Table 4" in NIST Recommendation for Key Management.
(Bis 2030 hält das NIST auch noch 112 Bit für akzeptabel. Aber nur dann, wenn die damit zu schützenden Geheimnisse auch nur bis zu diesem Datum geschützt werden müssen: "Determine the security strength required for protecting data during the entire period of protection." Siehe ebenda (in Abschnitt 5.6.4).)

24) Hinweise zu Marken Drit­ter:
"LastPass" ist eine Marke oder registrierte Marke von LastPass US LP in den U. S. und anderen Ländern.

25) Siehe den Blog-Artikel "Sicherheitsbresche bei LastPass".

26) Mit "unidirektional Verschlüsselung" ist die Bildung eines kryptografischen Hashes (siehe Wikipedia "Kryptographische Hashfunktion") gemeint, die keine direkte Entschlüsselungsmöglichkeit zulässt.
Doch auch bei bestmöglicher (clientseitiger) Verschlüsselung des Kennworts eines ohne direkte Entschlüsselungsmöglichkeit, ist es immer nötig, dass der Dienst serverseitig überprüfen kann, ob das Kennwort stimmt oder nicht. Das heißt, dass es einen Algorithmus gibt, der zusammen mit den gespeicherten Serverdaten bestimmt, ob ein Kennwort richtig oder falsch ist. Wenn ein Kennwort kryptografisch stark ist, ist das kein Problem. Ist es aber schwach, und kommt irgendwer an die Serverdaten heran, dann kommt er noch viel leichter auch an den Algorithmus und kann mit der Brute-Force-Methode sehr effizient alle möglichen Kennwörter ausprobieren und wird bald damit das Kennwort ermittelt haben. D. h. eine indirekte Entschlüsselungsmöglichkeit kann es dann geben, wenn das Kennwort keine kryptografische Stärke besitzt.
Speziell beim Smartphone des San-Bernadino-Terroristen kam diese Methode zum Einsatz. Das Telefon war nur mit einer vierstelligen PIN verschlüsselt, die leicht (in 26 Minuten) zu knacken war. Das Problem für das FBI war lediglich, dass Apple nicht half (und damit ein direktes Auslesen des Speichers unter Umgehung des Betriebssystems nicht so leicht möglich war) und dass das Betriebssystem nach einer Reihe von Fehlversuchen den Speicher gelöscht hätte und auch neue Versuche verlangsamte. Das FBI kaufte jedoch von Hacker*innen eine Software, die eine Schwachstelle des Betriebssystems nutzte, um diese Probleme zu umgehen. Siehe Spiegel: "FBI entschlüsselte iPhone offenbar mit Hilfe von Hackern" (13.04.2016) und Washington Post: "FBI paid professional hackers one-time fee to crack San Bernadino iPhone" (12.04.2016).
Mit einem starken Kennwort für das iPhone wäre diese Entschlüsselung auch mit Hilfe Apples wohl nicht gelungen, es sei denn, es hätte weitere Sicherheitsmängel gegeben, die dann allerdings schon ein skandalöses Ausmaß hätten annehmen müssen. Apple hätte nämlich bei rechten Dingen höchstens die verschlüsselten Daten vom iPhone oder von Cloud-Sicherungen holen können, aber die Entschlüsselung selbst wäre dann ohne das Kennwort nicht möglich gewesen.

Warum sind wir mit kryptografischer Stärke auf der sicheren Seite?
Wir sehen als "sichere Seite" an, wenn das Kennwort nicht das schwächste Glied innerhalb von kryptografischen Sicherheitsketten ist. Dabei wird insbesondere auch die Sicherheitskette betrachtet, die die Klar-Daten, darunter auch das Kennwort, noch schützt, wenn verschlüsselte Daten von Angreifer*innen abgegriffen werden konnten.
Wenn für das Kennwort 2 ** 128 Proben erforderlich sind, so ist dies nicht mehr einfacher als ein direkter Angriff auf die davon abgeleiteten Schlüssel und Hashes. Damit ist das Kennwort nicht mehr das schwächste Glied der Kette.
Einen Unterschied zwischen 128-Bit-, 192-Bit- und 256-Bit-starken Schlüsseln und Hashes machen wir derzeit33 nicht, da diese allesamt als stark, also als nicht knackbar angesehen werden. Für Kennwörter, die merkbar sein und/oder manuell eingegeben werden müssen, reichen daher 128 Bit Stärke aus. (Für Kennwörter die automatisch generiert werden, in einem Passwortmanager gehalten und in der Regel automatisch oder per Copy/Paste eingetragen werden, kann es Sinn machen, 192-Bit- oder 256-Bit-starke Kennwörter zu generieren, um diese lange haltbar zu machen.

Warum sind wir unterhalb kryptografischer Stärke auf der unsicheren Seite?
Wir sehen als "unsichere Seite" an, wenn wir nicht mehr sagen können, ob das Kennwort nicht doch das schwächste Glied Glied innerhalb einer kryptografischen Sicherheitskette ist. Es kann also durchaus sein, dass wir nur mangels Informationen auf der unsicheren Seite sind.
Der wesentliche Unsicherheitsfaktor ist die Schlüsselstreckung. Da es eine Aufgabe des Servers (oder vom Server bereitgestellten Skripts für den Client) ist, kann man normalerweise nicht sagen, ob die Schlüsselstreckung ausreichend ist, ein Kennwort mit weniger als 128 Bit Entropie so zu verschlüsseln, dass es mit der Brute-Force-Methode ähnlich schwer zu ermitteln ist wie ein 128-Bit-Kennwort ohne Schlüsselstreckung.
Eine Schlüsselstreckung auf einem Client mittels JavaScript ist z. B. um Größenordnungen zeitaufwändiger (bzw. bei gleichem Zeitaufwand viel schwächer – und diese Alternative wird dann in der Regel gewählt) als eine Schlüsselstreckung auf einem Server. Der Computer einer Angreifer*in kann zudem evtl. nochmal um Größenordnungen effizienter die Hash-Berechnung durchführen als der Server oder gar der Client. So können z. B. Field Programmable Gate Arrays (FPGA) und Grafikprozessoren (GPU) für das hacking verwendet werden, da diese sehr viel schneller als CPUs Hashwerte berechnen können.
Bevor wir bei einem Kennwort Abstriche an der Stärke machen, sollten wir zuvor Garantien über die Schlüsselstreckung (mit genauer Angabe der hinzugefügten Stärke-Bits) bei dem Gerät, Programm oder Dienst erhalten haben, für das oder den wir es benutzen wollen. Derzeit sind derartige Angaben jedoch unüblich. Solange derartige verlässliche Angaben überhaupt nicht üblich sind, taugt die Schlüsselstreckung aber nicht als Argument, dass ein verschlüsseltes Kennwort ohne eigene 128 Bit an Stärke Angriffen widerstehen kann.

27) Die Kombination von zwei Kennwörtern bedeutet für die Nutzer*in eine Verdoppelung der Anstrengung (in der Kennwortentwcklung, aber vor allem in der regelmäßigen Eingabe). Aber diese Verdoppelung wird mit dem Quadrat an Sicherheit belohnt. Man sollte sich also klarmachen, dass Aufwände hier eine gute Rendite bringen.

28) Nach den Entschlüsselungsversuchen dürfte die Hacker*in bei der zukünftigen Reihung des primären Wörterbuchs die aktuell geknackten Kennwörter mit berücksichtigen.

29) Wenn der Ertrag_bei_Erfolg für alle restlichen zu knackenden Konten als gleich groß eingeschätzt wird, betrifft das die ganze Versuchsreihe. Ansonsten werden wohl zunächst nur die unwichtigeren zu knackenden Daten für folgende Proben aussortiert. (Siehe den in diesem Abschnitt weiter unten behandelten "Wichtigkeitsfaktor".) Irgendwann wird aber der Punkt erreicht, an dem auch für alle restlichen Kennwortdaten der Aufwand die Chancen übersteigt.

30) Im Blog-Artikel "Sicherheitsbresche bei LastPass" habe ich in einer Anmerkung eine Verdoppelung alle 15 Monate berechnet.

31) Auf der Seite https://haveibeenpwned.com/Passwords wird die Entwicklung der Größe der Passwort-Datenbank beschrieben:

  • August 2017: 306 Mio.
  • Februar 2018: mehr als 500 Mio.
  • Juli 2018: zusätzlich 16 Mio.
  • Januar 2019: 551 Mio.
  • Juli 2019: 555 Mio.
  • Juni 2020: 573 Mio.
  • November 2020: 613 Mio.

Während die Entwicklung bis Februar 2018 wohl mehr den Aufbau der Datenbank markiert als den tatsächlichen Zuwachs kompromittierter Kennwörter, scheint die Entwicklung von Januar 2019 bis November 2020 bereits eine Stablisierung der Datenbank darzustellen und der Zuwachs um elf Prozent dürfte dem Zuwachs kompromittierter Kennwörter entsprechen. Dieser Zuwachs fand in 22 Monaten statt. D. h. hochgerechnet dürfte sich der Verdoppelungszeitraum auf 11,9 Jahre belaufen. Diese Entwicklung ist also derzeit gegenüber dem Moorschen Gesetz noch zu vernachlässigen.

Die Verdoppelungszeit von knapp 12 Jahren kann nicht immer so lang gewesen sein, (sonst könnte es heute keine halbe Milliarde kompromittierter Kennwörter geben, denn so lang ist die Geschichte elektronischer Computer noch nicht). Das heißt, dass die Verdoppelungszeit tendenziell fällt. Mögliche Erklärungen sind:

  • Die Abwehrmaßnahmen der Serverbetreiber*innen gegen Hacking wirken inzwischen, während viele der kompromittierten Kennwörter in der Zeit früher einfacher zu erbeuten waren (z. B. im Klartext in den Datenbanken lagen). Oder:
  • Ein größerer Teil der erbeuteten Kennwortdaten hält inzwischen den Offline-Brute-Force-Angriffen stand. Oder:
  • Listen kompromittierter Kennwörter sind heutzutage nicht mehr so einfach käuflich erhältlich wie früher. Allerdings ist es unwahrscheinlich, dass einfache Hacker*innen sich die Möglichkeit einer Zweitverwertung durch Verkauf der Liste entgehen lassen, nachdem sie sie nach eigenen Möglichkeiten weitgehend ausgenutzt haben. Und Geheimdienste teilen ohnehin ihre Erkenntnise nicht gerne mit, also weder heute noch früher eine Rolle bei dem Aufbau der HIBP-Datenbank spielen bzw. gespielt haben. Oder:
  • Eine Kombination von vorgenannten Erklärungen trifft zu.

Die wahrscheinlichste Erklärung ist, dass das zunehmende Bewusstsein der Notwendigkeit digitaler Sicherheitsmaßnahmen bereits Wirkung zeigt (Kombination der ersten beiden Erklärungen). Allerdings ist diese Wirkung zwar dringend nötig, aber längst nicht ausreichend, da zwar die Anzahl der kompromittierten Kennwörter langsamer wächst, aber die finanziellen Schäden durch digitale Angriffe sich seit 2021 auf einem enormen Niveau von mehr als 200 Mrd. Euro33 jährlich befinden.

32) "ASCII" ist der US-amerikanische Standard-Zeichensatz. Die darin enthaltenen Sonderzeichen dürften heutzutage zumindest auf internationalen Tastaturen überall verfügbar sein.

33) Im Jahr 2024, dem Zeitpunkt der letzten Komplettüberprüfung dieses Artikels.

34) Die vom NIST empfohlene Sicherheitsstärke von kryptographischen Schlüsseln und Hashes gilt verbindlich erst ab 2030. D. h. für eine Übergangszeit werden z. T. auch noch geringere Stärken als akzeptabel empfunden. Es ist allerdings für diese geringeren Stärken nicht auszuschließen, dass eine Abwägung zwischen Sicherheit und Aufwand getroffen wurde. Deshalb denke ich, dass man (außer in begründeten Ausnahmefällen) letztlich nur die uneingeschränkt und unbefristet von dem NIST empfohlenen Sicherheitsstärken verwenden sollte.
Die Bedeutung dieser NIST-Empfehlungen sieht man daran, dass sie für US-amerikanische Behörden verpflichtend sind. Sosehr die USA andere Länder ausspähen, sosehr achten sie darauf, nicht selbst ausgespäht zu werden. Staatsgeheimnisse gelten z. T. Jahrzehnte, bevor sie der Öffentlichkeit zugänglich gemacht werden. Wer derartige Fristen festlegt, muss natürlich auch für entsprechenden Schutz sorgen. Ich denke, dass es äußerst unwahrscheinlich ist, dass das NIST diesen Umstand bei ihren Empfehlungen nicht berücksichtigt hat. Für ebenso unwahrscheinlich halte ich, dass das NIST nicht über die Kompetenz verfügt, die entsprechend notwendige Sicherheitsstärke festzulegen.
Die Sicherheitsstärken von 128, 192 und 256 Bit sind dabei alle drei gleichwertig für die starke Verschlüsselung bzw. für die Bildung von Hashes zugelassen. Somit dürfte derzeit33 vom NIST bereits eine Stärke von 128 Bits als ausreichend auch für den langfristigen Schutz von Geheimnissen angesehen werden.

35) Die Schlüsselstreckung kann zur Grund-Sicherheit der Kennwörter, für die wir mit 128 Bit veranschlagen, nur wenig beitragen, da bei clientseitiger Verschlüsselung ein Großteil der Bits an Stärke, den sie bei serverseitiger Verschlüsselung lieferte, verloren gegangen ist, siehe den Blog-Artikel "Zero-Knowledge+ (2): Schlüsselstreckung". Betrachten wir also lieber den übriggebliebenen Stärkengewinn durch Schlüsselstreckung als Reserve zur Kompensation von vielleicht unbemerkten Vorhersagbarkeiten bei pseudozufälligen Kennworten.
Zukünftige Erhöhungen der Rechengeschwindigkeiten kann die Schlüsselstreckung aber durch Verdoppelung der Runden für jede Verdoppelung der Geschwindigkeit kompensieren, so dass die notwendige Gesamtstärke weiterhin der kryptografisch notwendigen folgt.
Allerdings ist Voraussetzung, dass die wichtigen Hersteller von Betriebssystemen und Passwortmanagern garantieren, dass sie diese zusätzliche Schlüsselstreckung auch vornehmen werden. Aber es sollte möglich sein, sie in einem öffentlichen Diskurs dazu zu drängen, wenn dieses Thema weiter vertieft wird.


>> Zurück zum Artikelverzeichnis >>